'****************************************************************************'
'                                                                            '
' Copyright (C) 2010 Muhammad alaa                                           '
'                                                                            '
' This program is free software; you can redistribute it and/or modify       '
' it under the terms of the GNU General Public License as published by       '
' the Free Software Foundation; either version 2 of the License, or          '
' (at your option) any later version.                                        '
'                                                                            '
' This program is distributed in the hope that it will be useful,            '
' but WITHOUT ANY WARRANTY; without even the implied warranty of             '
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              '
' GNU General Public License for more details.                               '
'                                                                            '
' You should have received a copy of the GNU General Public License along    '
' with this program; if not, write to the Free Software Foundation, Inc.,    '
' 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                '
'                                                                            '
'****************************************************************************'

Namespace ComPlus
    <ComImport()> _
    <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
    <Guid(IID.ComPlus.ITransactionProperty)> _
    Public Interface ITransactionProperty
        <PreserveSig()> Function SetConsistent(<MarshalAs(UnmanagedType.Bool)> ByVal fConsistent As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTransaction(<Out()> ByRef ptx As DTC.ITransaction) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTxStream(<Out()> ByRef ptsi As ITxStream) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTxStreamGuid(<Out()> ByRef pGuid As Guid) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTxStreamMarshalSize(<Out()> ByRef pSize As Integer) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTxStreamMarshalBuffer(<Out()> ByRef pBuffer As IntPtr) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetUnmarshalVariant(<Out()> ByRef pVal As IntPtr) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function NeedEnvoy(<Out(), MarshalAs(UnmanagedType.Bool)> ByRef pbIsNeeded As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetRootDtcCapabilities(<Out()> ByRef options As Short) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTransactionResourcePool(<Out()> ByRef pool As ITransactionResourcePool) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetTransactionId(<Out()> ByRef pGuid As Guid) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function GetClassInfo(<MarshalAs(UnmanagedType.Interface)> ByRef pObj As Object) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function IsRoot(<Out(), MarshalAs(UnmanagedType.Bool)> ByRef pbIsRoot As Boolean) As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function Reserved14() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function Reserved15() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function Reserved16() As <MarshalAs(UnmanagedType.Error)> Integer
        <PreserveSig()> Function Reserved17() As <MarshalAs(UnmanagedType.Error)> Integer
    End Interface
End Namespace